package com.kancy.stream.rabbit.handler;

import com.kancy.stream.rabbit.message.ChannelMessage;
import org.springframework.amqp.core.Message;

/**
 * ExceptionHandler
 *
 * @author kancy
 * @date 2020/3/8 19:06
 */
public interface ExceptionHandler<T> {

    /**
     * 处理异常
     * @param message
     */
    default void onException(Message message) {

    }

    /**
     * 处理异常
     * @param message
     * @param exception
     */
    default void onException(Message message, Exception exception)  {
        onException(message);
    }
    /**
     * 处理异常
     * @param message
     */
    default void doException(ChannelMessage<T> message) {

    }

    /**
     * 处理异常
     * @param message
     * @param exception
     */
    default void doException(ChannelMessage<T> message, Exception exception) {
        doException(message);
    }
}
